Exercise device independent, variable display rate visual exercise system

ABSTRACT

An exercise device independent, variable display rate visual exercise system uses a sensor to sense repetitive movements or other physical functions of the user. A computing device-readable medium containing computing device executable instructions which, when run on a computing device, cause the computing device to receive a user-exercise signal related to a user-exercise level, determine a modified frame-display time for a visual-image stream in response to the user-exercise signal, and provide the modified frame-display time to a visual-image stream player. Determining the modified frame-display time may include instructions that determine a user-exercise level in response to the user-exercise signal, receive a camera-mount speed and a native frame-display time for a recorded visual-image stream, correlate the camera-mount speed and the user-exercise level, and modify the native frame-display time in response to the correlation to produce the modified frame-display time. These instructions permit the visual-image stream player when playing the visual-image stream to dynamically change the frame-display time as a function of the user-exercise level.

CROSS REFERENCE TO RELATED APPLICATIONS

This application claims the benefit under 35 U.S.C. 119(e), of U.S. Provisional Application Ser. No. 60/509,207 filed Oct. 6, 2003.

FIELD OF THE INVENTION

The present invention generally relates to presentation of a recorded visual program, and, in particular, to dynamically modifying a presentation rate of the recorded program in response to an exertion level of an exercising program viewer.

BACKGROUND

Stationary exercisers, such as stationary bicyclists and joggers on treadmills, often view a recorded visual-image stream in conjunction with their exercise, such as a television or video program, a scenic program or a program of an exercise course. U.S. Pat. No. 6,004,243 to Bruce Ewert is directed to one such exercise device. The visual-image stream may be a prerecorded scene or a graphically generated scene replayed from commonly available analog and digital visual-image storage devices, such as a videotape, a compact disk (CD), a digital video disk (DVD), or other storage devices. Alternatively, the visual-image stream may be a recording that the user made of a favorite course or jogging trail. To make exercise more interesting, exercisers want to more closely simulate outdoor exercise.

Exercise systems that use a sensor mounted on the exercise equipment, such as that of U.S. Pat. No. 6,004,243 to Ewert, are known, but suffer from the difficulty that the system is not readily portable and may not be taken with the user when he or she travels. Even if the user were to take a variety of sensors along when traveling, mounting them on diverse pieces of exercise equipment may not be practical. For example, some stationary bicycles have spoked wheels, and a magnet for activating a sensor may be mounted on a spoke, with the sensor being mounted on the frame. Other exercise bicycles may have a solid disk wheel, may have no wheel at all, or may have an enclosed wheel, requiring a different type of sensor altogether. Treadmills, elliptical trainers, stair climbers, treadmills and other exercise equipment similarly differ in form and structure, and present different challenges for mounting of sensors that make sensor mounting for one-time use burdensome and unattractive.

Many exercisers already own stationary bike, stepper, elliptical, or treadmill exercise equipment. Rather than purchasing a completely new system to couple their exercise level with the visual-image program presentation rate, they may wish to add that capability to their existing equipment. In addition, a user or exerciser may use a local heath club or travel to different cities or destinations, and may want a capability to simulate outdoor exercise using readily available stationary exercise equipment at their destination.

There is a need for a convenient, portable, universally adaptable systems and method for exercisers that varies a pre-recorded visual-image stream presentation rate in response to a user's exertion level while exercising.

SUMMARY

In one aspect, the present invention may provide convenient, compatible, and portable computing device programs, devices, systems, and methods usable with existing exercise equipment that vary recorded visual-image stream presentation rate in response to a user's exertion level as indicated by the sensing of a repetitive physical function of the user.

For purposes of this application, a visual-image stream consists of one or more sets of sequential visual-images created to imply context and motion when displayed to the user. The image sets may or may not be in the same file and files may not be stored on the same media device. Image sets may be indexed, to be retrieved and displayed in a coordinated or contextual manner.

In one aspect of the invention, a computing device-readable medium is provided containing computing device-executable instructions which, when run on a computing device, cause the computing device to receive a user-exercise signal derived from the sensing of a repetitive physical function of a user, relate the signal to a user-exercise level, determine a modified frame-display time for a visual-image stream in response to the user-exercise signal, and provide the modified frame-display time to a visual-image stream player. These instructions permit the visual-image stream player when playing the visual-image stream to dynamically change the frame-display time as a function of the user-exercise level. Determining the modified frame-display time may further include instructions that determine a user-exercise level in response to the user-exercise signal, receive a camera-mount speed or other presentation rate value and a native frame-display time for a recorded visual-image stream, correlate the camera-mount speed and the user-exercise level, and modify the native frame-display time in response to the correlation to produce the modified frame-display time. In addition, where the user-exercise level correlates to a speed that exceeds the camera mount speed or other presentation rate value by a desired amount, the system may omit the display of frames of the video sequence to facilitate the smooth display of an apparent speed. This permits the use of a slower camera mount speed, and allows the video program to be used in conjunction with a variety of simulated outdoor exercise types having a wide range of desired apparent exercise speeds. This may also be important in the context of systems used in a rehabilitation context.

In another aspect of the invention, a method of displaying a visual-image stream having a plurality of sequential visual-images is provided. The method includes receiving a user-exercise signal generated in response to a user's repetitive physical function indicative of a user-exercise level, determining a user-exercise level, and dynamically adjusting a frame-display time of a visual image as a function of the determined user-exercise level.

In a further embodiment of the invention, a visual-image stream replay-control system is provided that includes a computing device-readable medium containing computing device-executable instructions which, when run on a computing device, cause the computing device to receive a user-exercise signal generated in response to a user's repetitive physical function and related to a user-exercise level, determine a modified frame-display time for a visual-image stream in response to the user-exercise signal, and provide the modified frame-display time to a visual-image stream player. The system also includes a sensor for sensing a repetitive physical function of a user configured to provide the user-exercise signal when the user exercises. This system permits the visual-image stream player when playing the visual-image stream to dynamically change the frame-display time as a function of the user-exercise level. The system further includes a collector operable to receive a user-exercise signal from the sensor, and provide the user-exercise signal to a computing device. The collector may be further operable to store or buffer the user-exercise signal. Where the apparent speed of the video-image stream presentation is significantly greater than the camera mount speed, frame dropping may also be used to achieve the desired apparent speed of the video-image stream presentation.

If load factor information is included for the video-image stream, the user level may be adjusted such that the presentation of the video-image stream appears to depict a faster or slower apparent speed. For example, for a given user output level, a video image stream showing the descent of a hill on a bicycle should depict a faster apparent speed, and the ascent of a hill should depict a slower apparent speed.

Other means may be used to affect apparent speed such as by slowing the camera mount speed while recording uphill or high friction segments (such as a sandy path) or speeding up the camera mount speed while recording downhill or low friction segments without providing load factor information or otherwise informing the system of the camera mount speed changes.

In another aspect, picture in picture, video sequence branching, selection from multiple video streams (e.g., inserting a pacer or pacers into the video image, or providing views to the rear or to the sides), frame dropping and periodic presentation of video stills based on, for example, location in the video stream, may be variously used to enhance the exercise experience. In addition, the apparent speed of the exerciser may be varied depending on grade information of the course so that, for example, the apparent speed of an exercise bicyclist exercising at a given rate on a steep uphill grade would be slower than for exercise at the same given rate on a flat or downhill segment.

In an aspect of the invention, the user may adjust the correlation between the exercise signal and the user exercise level so that he or she is capable, at the present fitness level, of achieving an apparent speed in the video-image stream that captures the user's interest. In another aspect, data is gathered by individual systems and transmitted over a network connection, via a dial-up connection or the like to another system or systems so that an exercise specialist or medical person can monitor the user's progress. In another aspect, data is exchanged with other users of like systems. Where these users are also traversing the same virtual course, the location of the other riders can be marked by any of a variety of means, such as position markers along a line or bar indicating the percentage of the course that has been completed, or the use of picture-in-picture to show companion riders in a forward view or rear view mode. The position data along the course may be shared via peer-to-peer or server-based data exchange. Where data is shared over a network (including the Internet) or over telephone lines via modem connections, physical proximity of the exercisers is not needed. The data shared may include voice data to allow the exercisers to communicate verbally, thus enhancing the exercise experience.

BRIEF DESCRIPTION OF THE DRAWINGS

Aspects of the invention, together with features and advantages thereof, may best be understood by making reference to the following description taken in conjunction with the accompanying drawings, in the several figures of which like referenced numerals identify like elements, and wherein:

FIG. 1 is a schematic, outline diagram illustrating a user operating an exercise device, such as a elliptic trainer, and a portable visual-image stream replay-control system that varies a recorded visual-image stream presentation in response to a user's exertion level, according to an embodiment of the invention, the display 18, the computing device 28, the program 50, and the player 56 may all be incorporated in a portable device such as a wearable or laptop computing device, the collector 40 may also be incorporated in the same portable computing device 28.

FIG. 2 is a functional system diagram of the device of FIG. 1.;

FIG. 3 is a use sequence diagram of the visual-image stream replay-control system; and

FIG. 4 is a flowchart depicting a process of the visual-image stream replay-control system that polls the collector and determines a modified frame-display time, according to an embodiment of the invention.

FIG. 5 is a flowchart of a program process for determining frame dropping based on the user-exercise level.

FIG. 6 is a flowchart of a program process for data sharing between or among different exercise systems.

DETAILED DESCRIPTION

In the following detailed description of exemplary embodiments of the invention, reference is made to the accompanying drawings, which form a part hereof. The detailed description and the drawings illustrate specific exemplary embodiments by which the invention may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention. It is understood that other embodiments may be utilized, and other changes may be made, without departing from the spirit or scope of the present invention. The following detailed description is therefore not to be taken in a limiting sense.

Many people prefer to incorporate a variety of different types of exercise equipment into their exercise regimens and may wish to simulate exercise over a variety of exercise courses. Other users may travel, may exercise both at home or at a gym or club, or may otherwise vary their exercise experience. Stationary exercise is difficult for many people, and watching television, or listening to recorded or broadcast music often does not avoid the boredom that arises during such exercise.

One way to add interest to an exercise program, provide exercise level feedback to the user of exercise equipment and maintain user motivation involves presenting a video-image stream that simulates the traversing of a course at rates of speed that varies with the user-exercise level. Portability of the system between exercise machines, and, indeed, including non-machine exercises such as running in place, may be accomplished, according to one embodiment of the invention, by sensing a repetitive user physical function as opposed to a machine function, and varying the playback speed in response to the speed of the repetitive user physical function. This has the further advantage, particularly in the field of rehabilitative exercise, of providing an appealing apparent speed in a video sequence even if the resistance or the stride length (as on a treadmill) does not actually correspond to the apparent speed. Feedback and encouragement are provided for improvements in the exercise rate by increases in the apparent speed according to this embodiment.

Data exchange among user systems, with a server, and/or with a monitor system may also be used to enhance the exercise experience by permitting virtual group exercise, monitoring by trainers and medical personnel and the like.

FIG. 1 illustrates one embodiment in outline form a user 12 operating an exercise device 14, such as an elliptical trainer, and a portable visual-image stream replay-control system that varies a recorded visual-image stream presentation in response to a user's exercise level, as determined based on the sensing of a repetitive physical function of the user, such as, for example, arm motion, leg motion, footfalls, breathing rate and heart rate. FIG. 2 is a functional system diagram of a system useable by the user.

FIGS. 1 and 2 illustrate a visual display 18 connected to a computing device 28 and positioned within view of the user 12. The display 18 may include one or more of a handheld display, a wearable display, a computer monitor, a television screen, or a projector. For example, a scene may be displayed on one visual display device, and data, graphics, and/or user information displayed on another visual display device. The display 18 may be visual stereo 3-D enabled. A visual-image stream player 56 for playing a recorded visual-image stream is associated with the computing device 28, and may be incorporated as a part thereof. The recorded visual-image stream is stored on a medium playable in the visual-image stream player 56, and may be in digital or analog format. The portable visual-image stream replay-control system 10 includes a sensor 30, a collector 40, and a simulation software program 50 operable on the computing device 28. The simulation program 50 is indicated in FIG. 1 by way of example as residing in the computing device 28.

The sensor 30, when coupled with the user 12, detects a repetitive physical function of the user and generates a user-exercise signal in response. The sensor 30 is illustrated as a pedometer. The sensor 30 may be configured to detect a rate of a repetitive motion or acceleration, such as detection of a stride, a step, a rowing movement, an arm movement, a hand movement, a leg movement, or a foot movement. The detection may be by an accelerometer, a mercury tilt switch, an acoustic sensor, an impact/pressure sensor, or other such sensor. In an alternative embodiment, the user-coupled sensor 30 may detect a heart or breathing rate. By way of further example, an impact or acoustic sensor may be used to detect a foot impact on a treadmill. Non-contact sensors such as acoustic sensors and impact/pressure sensors need not be mounted to the user. Rather, they might be positioned beside the user. Examples of these sensors would include a pressure pad on which a user might exercise by running in place. An acoustic sensor might be provided to sense footfalls on a treadmill.

The sensor 30 may produce several user-exercise signals during a single cycle to increase sensitivity of the user-exercise signal. For example, if a person is walking on a treadmill with a stride every two seconds, a sensor 30 would provide more responsiveness if it detected each one-fourth stride and indicated four hits per stride, making data available every one-half second. To accomplish this, the sensor 30 may be configured to produce multiple output pulses for each repetition of the physical function. For example, an ankle or leg sensor might be biaxial and sense forward and rearward accelerations in addition to upward and downward accelerations resulting in the production of four user-exercise signals per cycle of the function on an exercise bicycle, three on a treadmill (one vertical signal is wasted).

In addition to the sensor 30 that generates the user-exercise signal, other sensors may be coupled with the user 12. For example, when the sensor 30 includes a pedometer, a heart-rate sensor 15 may also be coupled with the user 12, and data from the heart-rate sensor 15 may be stored or displayed to the user on the display 18.

In one embodiment, the collector 40 includes a housing, one or more user-exercise signal inputs, one or more data outputs including a user-exercise signal output, a clock, a CPU, a such as a microprocessor or a microcontroller, a programmable memory or storage, such as an EPROM, for storing a collector program, and a digital storage medium for buffering the user-exercise signal and optional user inputs. The collector 40 may be attached to a limb of the user or, to avoid mounting difficulties, may be mounted separately. The collector 40 is coupled by a cable 32 to the sensor 30, and by a cable 42 to the computing device 28 running the simulation software program 50. In an alternate embodiment, the coupling between the collector 40 and the sensor 30 may be a wireless coupling rather than a cable 32, and similarly the coupling between the collector 40 and the computing device 28 may likewise be a wireless coupling. These couplings may use radio frequencies, modulated light or the like, including wireless Bluetooth systems, wireless USB or the like. The use of wireless couplings reduces setup times and frees the user from possible entanglement that may occur with cables. In a further alternative embodiment, the sensor 30 may directly provide the user-exercise signal to the computing device 28, and the computing device may include the operability of the collector 40 to receive and buffer the user-exercise signal. Similarly, the collector 40 may be incorporated in a single device with the sensor 30, or may be incorporated in the computing device 28.

The collector 40 may include a user-input device 44, such as a keyboard, a numeric keypad, a touch-sensitive screen, a mouse, an infrared device, a game-controller, a microphone for speech recognition, and/or other devices that receive user input. Alternatively, the user-input device 44 may interface directly with the computing device 28 rather than the collector 40. The user-input device 44 allows the user/exerciser 12 to interact with programs running on the computing device 28 and the visual media stream player 56. For example, the user may select replay alternatives, such as optional views, alternative paths through the exercise course, pause the visual media stream player 56, change gears in the sense that a biker changes gears so that a stronger force at a lower cadence maintains the same speed (or the opposite), to steer a graphically generated path overlaid on the recorded visual-image stream or to apply virtual brakes. Other user input may include user data, system configuration data, course information data (such as slope, terrain, course friction data), camera-mount speed or other presentation rate value, media-type, starting point along the exercise course, and location of still images along the exercise course.

The presentation rate value, such as camera mount speed or content cadence value may be used to further facilitate use of the stored video-image streams. The camera mount speed is a value representative of the speed of the camera at which a recording is made, and may apply to all or a portion of the course depicted in the video stream. A content cadence value is a particular average cadence at which the course or course portion may be traversed in a length of time equivalent to the native run time of the video stream for that particular course or course portion by maintaining an average cadence value equivalent thereto. For example, a course with a content cadence value of 60 per minute that has a native run time of 30 minutes may be traversed in 30 minutes at an average cadence value of 60 per minute. The cadence may be an actual cadence, such as the number of footfalls, downward leg strokes on an exercise bicycle or other repetitive physical function per minute, or may be a calculated cadence based on or derived from a user exercise level. For convenience, the embodiments herein will be illustrated with reference to camera mount speed as a presentation rate value.

In an alternate embodiment, the display of still images and the choice of alternate paths may be made according to program context. Program context may include factors such as user-exercise level, prior user-selected options, prior alternative path choices in response to program context, user history information and the like. In an alternative embodiment where the sensor 30 provides the user-exercise signal directly to the computing device 28, the collector 40 may provide user input directly to the computing device 28 by a connector or a wireless device.

In one embodiment, the collector 40 forms a buffered node on a one-way path for the user-exercise signal from the sensor 30 to the computing device 28. The collector 40 includes operability to receive a user-exercise signal from the sensor 30 associated with the user 12, store the user-exercise signal, and provide the user-exercise signal to an application running on the computing device 28, such as the simulation software program. Typically, the sensor 30 includes an analog device that generates the exercise signal in analog form, and the collector 40 includes operability that receives and converts the analog signal to a digital exercise signal, and adds signal interval time data.

In an alternate embodiment, and referring to FIG. 2, the sensor 30 may output the exercise signal as a digital exercise signal. The collector 40 may further include operability to receive and store user-entered input as indicated by the dotted line to the user-input device 44, and provide the user-entered input to the computing device 28. In an alternative embodiment, the collector 40 may further include operability to determine a user-exercise level in response to the exercise signal, and provide the exercise level to the computing device 28. This allows the sensor 30 to be configured for detection of a selected physiological parameter of a user, and the collector 40 to be configured for determination of a user-exercise level in response to the selected physiological parameter and the frequency or period of the repetitive physical function of the user. For example, if the selected physiological parameter is a user's stride, the collector 40 may determine the user's speed from the stride length and cadence, and provide that speed to the computing device 28. Data provided by the user, such as stride length, inseam length (from which stride may be estimated), etc. In a further alternative embodiment, the collector 40 may also include operability that determines the modified frame-display time, and provides the modified frame-display time to the visual-image stream playback program and/or hardware, which may be running on the computing device 28 or incorporated with the player 56. Such operability may be provided by including software and computing capability in the collector 40, or by hardware performing the operations, such as an application specific integrated circuit (ASIC).

The computing device 28 may be any computing device having a CPU, memory, storage, an operating system, one or more input ports and output ports, and, optionally, a graphics card able to drive the display 18 if the visual-image stream player 56 is not used to drive the display. The player 56 may be an internal CD-ROM or DVD-ROM drive of the computing device 28. For example, the computing device 28 may be a personal computer, such as a desktop, laptop, notebook or tablet computer, or may be a microcomputer, a controller, a microcontroller, a game controller, or other computing devices. The computing device 28 may be implemented solely in hardware and firmware, or a combination of hardware and software. The operating system may be Windows, Macintosh, Linux, or other operating systems. The computing device 28 may include a wired or wireless connection 53 to a network 52, such as a local area network (LAN), a wide area network (WAN), the Internet, or other 2-way access to external systems.

The visual-image stream player 56 may be any kind of visual-image stream player device, such as a video tape player, a CD player, a DVD player and a digital-storage playback device. The visual-stream player 56 may be incorporated within the computing device 28, such as a DVD drive, or may be external to the computing device and associated by a connector. The visual-image stream playback software and/or hardware converts the visual-image stream data stored on the medium 58 and read by the visual-image stream player 56 into visual images displayed on the display 18. The visual-image stream player 56 may include the visual-image stream playback software and/or hardware, or alternatively, the visual-image stream playback software and/or hardware may be associated with the computing device 28. The playback software may be any software suitable for the player 56 and the medium, such as Windows Media Player® and Direct-X®. In an alternative embodiment, the visual-image stream may be provided by the network 52 coupled to the computing device 28.

The medium providing the visual-image stream data may be a DVD, a CD, a videotape, a digital storage device, including a hard drive, or other, preferably portable, storage medium operable to store the visual-image stream. The medium may be stored externally to the system 10 and the computing device 28, and accessible using the network 52.

The recorded visual-image stream may also include additional information, such as supplemental data that may include audio, text or still images associated with the visual-image stream, and data, such as the camera mount speed reflecting the speed at which the camera was moving during recording of the visual-image stream, a course location, location at which still images are available to be displayed at points along the course, surface friction, and slope. The recorded visual stream may be created by others and stored on the medium 58, such as a commercially available DVD, CD or videotape, or it may be created by the user. The user or others may create the visual-image stream for playback in conjunction with future exercise by recording a favorite exercise path, trail, road using commonly available visual-image and audio-recording equipment. Camera mount speed may be stored in conjunction with, or within, the visual-image stream data. For example, Microsoft Corporation's Windows Media® software allows the embedding of data with the visual-image stream data.

Stereo or other multi-dimensional sound may be associated with the visual-image stream. The sound may be stored in a separate file or files, and the playback of the sounds may be displayed as the user reaches various points in the visual-image stream. Alternatively, the sound data could be embedded with the visual-image stream. The sound data may represent natural sounds, narrated descriptions of the real world setting, music, verbal instructions to the user or other sounds. The visual-image stream may be stored as one continuous file, or broken into several files. Multiple files may be used to allow choices between branching paths, for example, and the user could use the user input device 44 to cause the computing device 28 to display alternate routes through an exercise course during use.

The simulation software program 50 includes computer-executable instructions, which when run on a computing device, such as the computing device 28, causes the computing device to provide a modified frame-display time to the visual-image stream playback software and/or hardware. This permits the visual-image stream playback software and/or hardware, when receiving a recorded visual-image stream from the medium 58 to dynamically change the frame-display time as a function of the user's exercise level, thus changing the visual-image stream presentation rate to simulate the user's exercise level. For example, the faster a user pedals or runs, as may be determined based on the user-exercise signal, or the greater a user's exertion, as may be determined, for example, by breathing or heart rate, the faster the recorded visual-image stream is presented, thus simulating a correspondence between a user's exercise level and an apparent speed of the user as a viewer of the program embodied in the visual-image stream and presented on the display 18. The simulation software program 50 is, typically, stored on a readable medium, such as a CD, DVD, removable disk or other medium, and is run by the computing device 28. In an alternative embodiment, the program 50 may be provided to the user preloaded on the computing device 28. In a further alternative embodiment, the simulation software program 50 may be stored externally to the system 10 and the computing device 28, and accessed using the network 52.

The simulation software program 50 modifies the frame-display time, or duration, of the frames of a recorded visual-image stream. A visual-image stream (or visual program) includes visual-image frames displayed in a sequence and at a rate, or duration, to a viewer. The apparent speed of a visual-image stream is a function of the distance the camera mount travels between successive frames and the length of time each of the frames is displayed. That is, the faster the display rate or shorter the time duration of a frame, the faster the apparent speed—the faster the user seems to be moving through the scene depicted by the visual-image stream.

Separate from changing the rate of repetitive physical function, the user has two input options to alter the apparent speed during replay: setting the distance represented by each repetitive cycle and or adjusting the camera mount speed.

It may be desirable to record a visual-image stream at a slower speed even though the visual-image stream may be intended for use with an exercise device for which a much faster visual playback speed is appropriate. For example, a video image stream may be recorded at a speed of 4 kph, which is close to a typical hiking speed, along a mountain path where a typical mountain biking speed might be 10-15 kph. Such a camera mount speed may be chosen, for example, to facilitate the making of a smooth recording on a bumpy mountain path. In such cases, if the user is using a treadmill, the duration for which each frame is displayed would be fairly close to the speed at which the video-image stream was recorded. If the user is using an exercise bicycle, however, the duration for which each frame in the recording should be shown might be quite short, and might demand that the playback device play the visual-image stream at a highly accelerated rate. To facilitate playback at such a high apparent speed, in addition to adjusting the duration for which the frames are displayed, the apparent video speed may increased by frame dropping, that is, some of the frames may be skipped. Dropping every other frame will double the apparent speed of the visual-image stream. In the present case, the system might drop every other frame, two out of three frames, four out of five frames or the like to facilitate the display of the video program at the desired apparent speed. The frame drop rate may vary with the user-exercise level and the exercise type (such as stationary bicycle, cross-country ski trainer, elliptical trainer, etc.)

The standard or native replay-rate speed is established by the system used. For example, the National Television System Committee (NTSC) standard or native frame rate is about thirty frames per second, resulting in a standard NTSC native frame-display time equal to {fraction (1/30)} of a second, or 0.03333 second. This frame rate is often used in recording visual-image streams.

The camera-mount speed is the translation speed through space that the camera was moving during recording of the visual-image stream, and typically is expressed in miles-per-hour or kilometers-per-hour. The camera-mount speed may be constant or variable. The camera-mount speed may be included as a data element associated with the recorded visual-image stream and read by the program 50. If no camera-mount speed is included with the recorded visual-image stream, the program 50 may assume a camera-mount speed or allow the user 12 to input a camera-mount speed.

In one embodiment, the simulation software program 50 includes computing device executable instructions which, when run on the computing device 28, cause the computing device 28 to receive the exercise level signal from the collector 40, determine a user-exercise level in response to the exercise-level signal based on a first correlation parameter, and receive a camera-mount speed for a recorded visual-image stream having a native frame-display time. The program 50 may also include instructions that correlate the camera-mount speed and the user-exercise level in response to a second correlation parameter, determine a modified frame-display time in response to the second correlation, and provide the modified frame-display time to the visual-image stream playback program and/or hardware. The program interacts with the visual-image stream playback program and/or hardware, when playing the visual-image stream from the media, to dynamically change the frame-display time as a function of the user's exercise level. The correlation of the user-exercise level and the camera-mount speed may be further adjusted in the event that frame dropping is used. For example, if the frame display time falls below a predetermined minimum value, frame dropping can be commenced. If the frame drop rate is determined to be one frame in two, for example, the frame-display time may be adjusted by doubling it.

Frame-play rate, which is an inverse of frame-display time, may be adjusted to closely match or simulate progress through a scene of a recorded visual-image stream, as the user would expect to experience in real life. For example, if a user-exercise signal indicates a user is generating a 20 kph effort, and the visual-image stream was recorded at a camera-mount speed of 10 kph, correlating by dividing the camera-mount speed by user speed, or user-exercise level results in a 10:20 ratio. The frame-display time is modified to be one-half of the native frame-display time, thus, doubling the replay-frame rate per second. These frames will display for 0.03333×(10/20)=0.01667 second each ({fraction (1/15)} of a second), or one-half as long. Image frames may be dropped (not displayed), shifted within the display area, or otherwise manipulated for the sake of realism, special effects, or if the frame rate exceeds the system capability.

As described above, the sensor 30 may sense repetitive physical functions of the user. The computing device simulation program 50 of an embodiment of the invention includes a first correlation parameter relating a user-exercise signal rate for a particular type of sensor 30 with a user-exercise level. The first correlation parameter may be a lookup table, a formula, or other correlation algorithm. For example, an algorithm in the simulation computing device software might correlate the rate of user-exercise signals with a user-exercise level by reading in a minimum and maximum rate of user-exercise signals, applying a zero user-exercise level to rates below the minimum, applying the maximum user-exercise level to rates above the maximum, and calculating a linear or exponentially-changing user-exercise level between the minimum and maximum user-exercise level. In any event, the first correlation parameter may be developed empirically, or in any other manner suitable for correlating an exercise signal with an exercise level. A lookup table provides a simple and effective method to determine a user exercise or exertion level in response to the user-exercise signal. Typically, different correlation parameters may be used for different user physical function parameters being sensed by the sensor 30. For example, one lookup table may be used for a pedometer sensing movement of a bicycling leg and another lookup table may be used for a heart-beat monitor sensing heartbeats, and yet another table may be used for a pedometer sensing leg movements from a user on a treadmill.

Table 1 illustrates an example where two correlation parameters cooperatively produce a modified frame-display time. In the example, the user 12 wears a pedometer sensor 30 on their leg. The pedometer provides a user-exercise signal related to leg cadence. Table 1 illustrates an embodiment of the first correlation parameter correlating a leg cadence based user-exercise signal to a user-exercise level, which is expressed as exerciser or user speed in miles-per-hour. Table 1 further illustrates a second correlation parameter correlating the user-exercise level (expressed as speed) and the camera-mount speed. The second correlation parameter may be a lookup table, a formula, or other correlation algorithm. The second correlation parameter may be developed empirically, or in any other manner suitable for correlating an exercise level with a camera-mount speed, and modifying a frame-display time. An embodiment of the second correlation parameter is illustrated in Table 1 as a ratio of the camera-mount speed divided by the user-exercise level (expressed as speed). The resulting ratio is multiplied by the native frame-display time to determine the modified frame-display time. The example illustrated in Table 1 includes a NTSC frame-display time of {fraction (1/30)}^(th) of a second (a frame rate of thirty frames per second) for the visual-image stream, and a constant camera-mount speed of 25 mph. Thus, the second correlation parameter includes the ratio of user speed and the camera-mount speed being multiplied by the native frame-display time of {fraction (1/30)}^(th) of a second to produce the modified frame-display time of Table 1. TABLE 1 Cadence Frame- (sensor User display hits per Speed Time minute) (mph) (seconds) 10 1.25 0.666667 15 2.5 0.333333 20 3.75 0.222222 25 5 0.166667 30 6.25 0.133333 35 7.5 0.111111 40 8.75 0.095238 45 10 0.083333 50 11.25 0.074074 55 12.5 0.066667 60 13.75 0.060606 65 15 0.055556 70 16.25 0.051282 75 17.5 0.047619 80 18.75 0.044444 85 20 0.041667 90 21.25 0.039216 95 22.5 0.037037 100 23.75 0.035088 105 25 0.033333 110 26.25 0.031746 115 27.5 0.030303 120 28.75 0.028986 125 30 0.027778 130 31.25 0.026667 135 32.75 0.025445 140 33 0.025253 145 34.25 0.024331 150 35.5 0.023474 155 36.75 0.022676 160 37 0.022523

Control of a visual-image stream replay in response to a user's exercise level according to an embodiment of the invention is illustrated in Table 1. The control will be illustrated with respect to an exercising user generating a user-exercise signal of 45 user-exercise signals per minute from a pedometer 30 worn on the user's 12 leg. Applying the first correlation parameter embodied in Table 1, 45 hits per minute is correlated with an exercise level expressed as a speed of 10 miles per hour. The exercise level may be displayed to the user 12 on the display screen of the display 18, or displayed on the collector 40. Applying the second correlation parameter, dividing the camera mount speed of 25 mph by the exercise-level speed of 10 mph results in a ratio of 2.5. The 2.5 ratio is multiplied by the native frame-display time of {fraction (1/30)}^(th) of a second to produce a modified frame-display time of 0.083333. This modified frame-display time slows down the presentation of the visual-image stream, and simulating the user moving slower through the scene than the speed at which the camera traversed it. Continuing with the example, if a user-exercise signal of 115 signals per minute is generated by the pedometer 30, the correlated exercise level is 27.5 miles per hour. The camera-mount speed divided by the exercise level is 25/27.5, or a 0.90909 ratio, which when multiplied by the native frame-display time of {fraction (1/30)}^(th) of a second produces a modified frame-display time of 0.030303. This speeds up the presentation of the visual-image stream, and simulates the user moving faster through the scene than did the camera.

As will be appreciated by those skilled in the art, the frame display time of 0.666667 seconds per frame, associated with an exercise level of 1.25 mph in Table 1, the display will be very jerky. A shorter frame display time is needed for the eye to perceive smooth motion. If the camera mount speed were slowed from 25 mph to 2.5 mph, ten times as many frames would be taken over a fixed distance, and the frame display time would be correspondingly reduced by a factor of ten. Thus, the frame display time of 0.666667 seconds (corresponding to 1.5 frames per second) would be reduced to a much shorter frame display time of 0.066667 seconds per frame (corresponding to 15 frames per second), producing a rate of frame display that would appear smooth to the eye. This creates a problem, however, for display of the video-image sequence at a user speed of 25 mph, as this user speed would correspond not to a frame rate of 30 frames per second, but rather to a frame rate of 300 frames per second, a speed with which the computing device 28 may not be able to cope. To mitigate this effect, when a user speed exceeds the camera mount speed by, for example a factor of two, the computing device 28 could instruct the player 56 to begin displaying only alternate frames. As the ratio of camera mount speed to user speed increases, the number of frames skipped per frame displayed could be increased. This allows for a video-image stream to be used over a wider range of user speeds.

Frame dropping may be accomplished according to an algorithm or may use a simple look-up table. For example, in one embodiment of the invention, and as shown in Table 2 below, frame dropping occurs when the user speed exceeds the camera mount speed by the indicated amount. TABLE 2 Multiple of Camera Mount Frame Drop Speed (MCMS) Rate MCMS <= 1.25 0 1.25 < MCMS <= 2.25 1 2.25 < MCMS <= 3.25 2 3.25 < MCMS <= 4.25 3 4.25 < MCMS <= 5.25 4 That is, where the user speed is 1.25 or less times as great as the camera mount speed, no frames would be dropped. It may be necessary, because of data compression, to process frames not displayed, in order to have all necessary image display information.

Table 3 provides further examples of frame drop rate as a function of camera mount speed and the user speed that relates to the user exercise level. In addition, it provides corresponding frame durations without frame dropping (Raw Frame Duration) and with frame dropping (Modified Frame Duration). TABLE 3 Camera Raw Frame Duration Frame Modified Frames Mount User (CameraSpeed/ Drop Frame per Speed Speed Multiple UserSpeed) *(1/30) Rate Duration Second 4 1 0.25 0.133333333 0 0.133333333 7.5 4 2 0.5 0.066666667 0 0.066666667 15.0 4 3 0.75 0.044444444 0 0.044444444 22.5 4 4 1 0.033333333 0 0.033333333 30.0 4 5 1.25 0.026666667 0 0.026666667 37.5 4 6 1.5 0.022222222 1 0.044444444 22.5 4 7 1.75 0.019047619 1 0.038095238 26.3 4 8 2 0.016666667 1 0.033333333 30.0 4 9 2.25 0.014814815 1 0.02962963 33.8 4 10 2.5 0.013333333 2 0.04 25.0 4 11 2.75 0.012121212 2 0.036363636 27.5 4 12 3 0.011111111 2 0.033333333 30.0 4 13 3.25 0.01025641 2 0.030769231 32.5 4 14 3.5 0.00952381 3 0.038095238 26.3 4 15 3.75 0.008888889 3 0.035555556 28.1 4 16 4 0.008333333 3 0.033333333 30.0 4 17 4.25 0.007843137 3 0.031372549 31.9 4 18 4.5 0.007407407 4 0.037037037 27.0 4 19 4.75 0.007017544 4 0.035087719 28.5 4 20 5 0.006666667 4 0.033333333 30.0 4 21 5.25 0.006349206 4 0.031746032 31.5 In this example, the camera mount speed is 4 mph, and no frame dropping occurs until the user speed exceeds 5 mph. Where the user speed is greater than 1.25 times the camera mount speed, but less than or equal 2.25 times the camera mount speed, one frame would be dropped for every frame displayed. For example, for a camera mount speed of 4 mph and a user speed of 8 mph, the multiple of the camera mount speed would be 2. This falls between 1.25 times and 2.5 times the camera mount speed, so every other frame would be dropped. At 14 mph, the ratio of user speed to camera mount speed would be 3.5, and accordingly three out of four frames would be dropped. To achieve the display of an apparent user speed equal to the user speed, the frame duration would also have to be adjusted. In calculating this adjustment, the frame dropping rate has to be taken into account. At 10 mph in Table 3, for example, the frame display without frame dropping would be 0.0133 seconds, but if two out of three frames are dropped, the duration would have to be further adjusted by multiplying 0.0133 seconds by 3, which produces a frame duration of 0.40 seconds, about 25 frames per second. At 19 mph in Table 3, where four out of five frames are being dropped, the adjustment factor would be 5, and so the frame display duration would be 0.007*5, or 0.035 seconds.

In addition to permitting a video-image stream recording to be used across a greater speed range, recording of video-image streams at a lower camera mount speed and using frame dropping to accommodate higher user speeds also enhances the realism of the video stream replay. From experience, realism is degraded at frame durations below about ⅓ of normal. A video stream recorded at 6 mph could be used at a user speed of 30 mph with the dropping of five out of six frames. The video-image stream playback at ½ the camera mount speed could be slowed by adjusting the frame display rate to a walking speed of 3 mph, producing 15 frames a second, without undue degrading of realism.

Simulation adjustments may be applied based on the user-exercise signal. For example, the replay may be paused, and an appropriate message displayed, if a user exceeds a predetermined number of strides per minute or a predetermined heart rate. The user may also be allowed to pause the simulation and may thereafter continue at the place in the simulation at which the pause occurred, or the replay may be paused when the user stops exercising.

Still or animated graphics may be applied to displays to provide information or entertainment. For example, an animated pacer within a “rear view mirror” inset may be progressively enlarged to motivate the exerciser to increase effort and may change front to back orientation to indicate the pacer has passed the exerciser. Heart rate or other physiological data may be displayed. User and or companion's course progress may be displayed. A real time pie chart of the relative time spent in predetermined heart-rate zones may be displayed.

Two cameras may produce two video-streams to be edited or synchronized during replay to display a visual three-dimensional view using two head-mounted displays, shutter glasses, glasses with differently colored lenses or other commercially available visual three-dimensional display.

Data, visuals and or sound may be distributed by the system to connected exerciser and or trainer computing device. Real time exercise data may be exchanged between connected systems and or to a central system that may or may not be monitored by a person real time.

FIG. 3 illustrates a use-sequence diagram 80 of the visual-image stream replay-control system 10, according to an embodiment of the invention. Prior to use, the system 10 is initialized and the exercise apparatus 14 is readied, the simulation computing device program 50 is loaded onto the computing device 28, the medium having the recorded visual-image stream is loaded into the visual-image stream player 56, and the collector 40 is placed in a convenient position relative to the user. In the group of steps 82, the user attaches the sensor 30 to their body, the simulation computing device program 50 is started, and initial user and program inputs are entered in preparation for exercising. In the group of steps 84, the program 50 opens and displays the visual-image stream in pause mode. As the user exercises, the program 50 polls the collector 40 for a buffered user-exercise signal. Upon receiving a user-exercise signal, the program 50 determines a user-exercise level and from that and the camera mount speed, determines a modified frame-display time and outputs the modified frame-display time or rate to the visual-image stream playback program and/or hardware. In the group of steps 86, the program 50 either terminates on detection of the end of the course or on receiving of a user-inputted stop command, or pauses replay on detection of a user-inputted pause command, or where the user has stopped exercising, as determined from the failure to receive a user-exercise signal for a period of time, or, in an alternate embodiment, where the user-exercise level is below a minimum value.

FIG. 4 illustrates a flowchart showing a process 90 executed by the simulation computing device program 50 that polls the collector 40 and determines a modified frame-display time, according to an embodiment of the invention. At process step 92, the process 90 regularly polls the collector 40 for a buffered user-exercise signal, the polling rate illustrated as once a second. At the decision step 94, if the polled buffered user-exercise signal includes new data, the process flow moves to steps 96 and determines whether the replay rate (frame-display time) should be changed. After that determination is made and any replay rate changes made, the process 90 moves to a return 99. At the decision step 94, if the polled buffered user-exercise signal does not include new data, the process flow moves to step 98 and determines if the replay rate (frame-display time) should be slowed or the player 56 paused. This provides for slow speeds and a smooth transition to pause. After that determination is made and any replay rate change made, the process 90 moves to the return 99.

The process 90 at steps 98 allows slow simulated speeds—where it takes longer than one second to complete one repetitive cycle that, in the case of Table 1, is speeds of less than 13.75 mph. The process 90 also allows the replay to “coast to a stop” when the user stops exercising. The slowest practical simulated speed in the example illustrated in Table 1 and FIG. 4 is probably about 5 mph. One may assume this slow rate is no longer “exercise,” but in a rehabilitation setting it may well be. When a stationary exerciser will be used for rehabilitation, or at the user's option, the visual-image stream replay-control system 10 may allow a user to select a camera-mount speed different from that associated with the visual-image stream. Using Table 1 as an example, the visual-image stream replay-control system 10 may allow a user to override the native camera-mount speed of 25 mph with a different speed, such as 6.25 mph. Thus, the visual-image stream would be replayed or presented to a user undergoing rehabilitation at its normal or native rate when the user's cadence is at 30 hits per minute instead of 105. This allows a user to customize the program presentation for their particular exercise situation. This also demonstrates the desirability of producing multiple-sensor hits per repetitive cycle so that, at slower cadences, a more refined measurement of the user-exercise level can be obtained.

FIG. 5 further explains a method of frame dropping according to one embodiment of the invention. Local, temporary variables (appended with “Temp”) are used to prevent unpredictable replay behavior. It must be remembered the program 50 is proceeding to display the video stream on another thread and it is undesirable to affect that behavior while this thread is processing. In the first step 100, the frame dropping program module receives the user camera mount speed into TempCameraSpeed, user speed into TempUserSpeed and makes use of the NativeFrameRate and DropFrameRate variables from the simulation—video replay code. The camera mount speed may be the actual camera mount speed at which the visual-image stream was created, or the user may input a camera mount speed adjustment to account for different types of exercise equipment (e.g., treadmill vs. stationary bicycle), or to account for reduced physical capability, as may be experienced where the system is used in a rehabilitation environment. For example, a rehabilitating user of a stationary bicycle may not be capable of achieving a cadence corresponding to 25 mph, but rather may be able to achieve a user speed of only 12.5 mph despite working as hard as he or she can. Adjusting the camera mount speed to 12.5 mph will allow the user to experience the apparent speed of 25 mph of the video-image stream despite only being able to achieve half the cadence normally required for that speed. Alternatively, as the cadence, user speed and frame display time are all related by algorithm or by look-up table (such as Table 1), the frame dropping program module could obtain information such as the frame-display time directly from the algorithm or table rather than having it provided by the program 50. The camera mount speed may be embedded in the visual-image stream data file, or may be stored in association with it. For example, the camera mount speed data may reside in a file header, may form a part of the file name for the visual-image stream data, or may be stored in a separate file identifiable as related to the file or files containing the visual-image stream data. The camera mount speed may change at different points in the visual-image stream. If the camera mount speed is not embedded in the visual-image stream it may be stored separately with a separate frame index number associated with each camera mount speed so that the simulation computing device program 50 can determine at what points in the visual-image stream the various camera mount speeds should be applied.

Step 102 determines the Multiple of the Camera Mount Speed (MCMS=TempUserSpeed divided by TempCameraMountSpeed). Step 103 uses MCMS to determine the temporary frame drop rate (TempDropFrameRate), typically by conditional branching. In the present embodiment, this is accomplished using a look-up table, such as Table 2. If the camera mount speed is, for example, 4 mph and the user speed is 15 mph, the ratio of these numbers would be 3.75. According to Table 2, this would correspond to a frame drop rate of 3, meaning that three frames should be dropped for each frame displayed. Put another way, only one of four frames should be displayed. At 20 mph, of course, the ratio would be 5, and the frame drop rate would be 4, meaning that four frames should be dropped for each frame that is displayed, and that only one of five frames should be displayed.

In the next step 104, the program module compares the calculated frame drop rate (TempDropFrameRate) with the prior frame drop rate (DropFrameRate). If the collector 40 is polled every second, and if it is desired to (conditionally) avoid changing the frame drop rate until the changed frame drop rate has been repeatedly calculated for three seconds, a counter is incremented in step 105 and the results are compared to 3. If there is no drop rate change, if the drop rate increases, if the drop rate decreases by more than 1, or if the drop rate decreases by 1 and the drop rate counter is 3 the program module proceeds to the step 106.

Otherwise, in step 104 the drop rate decreased by one and the drop rate counter is less than three, thus step 105 increases the drop rate counter, sets TempFrameDurate=(TempCameraSpeed/TempUserSpeed)*(1/NativeFrameRate)*(TempDropFrameRate+2). That is, it bases the calculation on the current drop rate, rather than the calculated drop rate. The next step 107 determines if the resulting frame rate is equal to or greater than ⅔ of the native frame rate (20 for NTSC or 16 for PAL). If so the program proceeds at step 108. If not the logic proceeds at step 106.

Step 106 sets the drop rate counter to zero, and adjusts the frame display time (TempFrameDuration). For example, for a frame drop rate of three, the sum of the frames to be dropped, namely 3, and the one frame to be displayed, equals 4, so the frame display time (TempCameraSpeed/TempUserSpeed)*(1/NativeFrameRate) is multiplied by 4.

The next step 108 must set all three player variables atomically. That is, once this code starts executing it must complete before releasing control to the operating system to process other threads (ie video stream replay code). Else an unpredictable replay rate will occur. The computing device module returns to the program 50. The program 50 then uses this information to omit the display of the appropriate number of frames and to display the appropriate frame for the adjusted time.

Myriad additions and modifications to the system 10 may be made to enhance the user experience. For example, alternate video image streams may be produced by using multiple cameras, and the user may be allowed to switch between the video-image streams during exercise. For example, in addition to the straight-ahead view, a side view of a bicycle trip along a ridge could be provided to allow the user to enjoy the view of the valley below. This picture could be displayed by itself, or picture-in-picture could be provided showing both the straight-ahead and side views.

The user may also choose to have still images displayed on command or at various calculated, periodic or predetermined points in the visual-image stream. Exercise may continue during display of the stills, and the video-image stream may be recommenced at the point at which the still image was brought up, or at a position down the path corresponding to where the user would have been had the still image not been displayed. The still images may be scenic views, flora or fauna, seasonal change views, informational displays or the like. Transitions to the stills may be abrupt, or may be presented otherwise, as by fades, sweeps or the like. The call-up point for the still image may be according to data stored in or with the visual-image stream, or the still image may be incorporated in the visual-image stream itself. In one embodiment, display of still images is accomplished by use of an index. The file name of the still may contain a frame time stamp, including a frame index, for the point in the visual-image stream where the still is to be displayed. When the display-stills option is selected, the system selects a required time period, for example, five seconds, from the frame index to allow the system overhead time to open, prepare and buffer the image for display. At the appropriate time in the display of the visual-image stream, the system displays the still for the preset or user-selected length of time. For example, the system may cache the display time stamp along with the full directory file specification in an indexed memory buffer with an open-index. Every time the system reads a time stamp that has a frame index of zero, it may check to determine if a still image file is available for the location. If so, a thread may be started to open, process and buffer the image. For speedy retrieval, it may be best to store the still images separately from the video-image stream content.

A variety of different methods may be used to allow a user to communicate with the collector 40 or computing device 28. These include keypads, infrared remote controls, voice command systems implemented in the computing device 28 or elsewhere, and so forth. The controllers may be used to call up menus, select options, input data to the controller or computing device system, pause, stop the display, apply virtual brakes, change virtual gears, steer a virtual course, etc.

While the purpose of the present system is to provide a video image stream that simulates the traversing of a course at a rate related to the output level of the user, the measurement of physical function of the user is superior to measuring cycles or motion of a piece of exercise equipment. However, other embodiments may take into consideration user and machine data, such as resistance setting or inseam data in the calculation of user speed. For example, using a treadmill as an example, an adjustment factor could be added to provide a correlation between, for example, inseam length and stride. Thus, a user with a 30″ inseam might have an expected stride four inches shorter than a person with an inseam length of 33 or 34 inches. Such data may be input by the user 12 to the collector 40 or computing device 28 at the time of system startup or during the course of exercise. Similarly, the stride length, and hence the distance traveled each time a user-exercise signal is output may be correlated such that a user-exercise signal frequency consistent with a jogging pace might presume a longer stride length than walking and a running pace might be presumed to have a stride length that is even longer. In such case, the user speed might more than double with a doubling in the frequency of the user-exercise signals.

User interest may be enhanced by use of data exchange among exercise systems and/or with a server or monitor system. Using graphic overlays, voice or text communication, picture-in-picture displays and the like, the exercise systems can provide simulations of group exercise, for example, in which a stationary cyclist, or avatar for the stationary cyclist, who is “behind” the user is displayed in the context of his or her course location in a picture-in-picture display or virtual rear-view mirror. Riders ahead of the user could likewise be displayed in a picture-in-picture display. Locations of other riders on the same course could likewise be indicated by graphics, as by symbols that traverse a bar graph, by symbols that move along the course on a map and the like. Riders of one fitness level may be allowed to adjust the correlation between their user-exercise signal rate and the user-exercise level so that they are competitive with riders of another fitness level in order to render them competitive.

Trainers or medical personnel could use data exchange from the user with a monitor system to monitor the progress of the user in real time or at a later time, and could provide encouragement, instructions and other feedback by such means as voice, text, image or other data exchange with the user system.

Data exchange may be accomplished by direct links, such as cable or wireless links, if the systems are in proximity to one another, or data exchange may be accomplished over a network, including the Internet, via dial-up, or by other data communications methods. Stored information from other users, or other sessions of the same user, could be used to provide virtual groups, in effect time-shifting their traverse of the course. Such data may consist of the frame index number and elapsed time for the course. Because data exchange may be accomplished over distances, such embodiments of the invention would allow for virtual groups to exercise together despite their physical separation, and for trainers and medical personnel to interact with the users from remote locations.

For users who prefer such group exercise, but who are embarrassed by their fitness level or physical appearance, such virtual group exercise can provide the encouragement such a user requires without the embarrassment. Users may even choose to remain anonymous. Group sessions may be arranged through a server or web page that allows such anonymity, or may be arranged by groups of users who communicate among themselves by other means.

Identification of the user location along the course can be derived from the frame index for the frame that is being displayed. Since video image streams comprise a series of images, two exercisers to whom the same frame is being displayed, and who accordingly see the same image, are at the same location in the course. The total number of images that comprise the video image data are known or can be determined. Actual distances along the course can be computed, if desired, from the frame index and camera mount speed(s). For example, for a segment recorded with a camera mount speed of 5 meters per second during which thirty frames per second are taken, each successive frame would represent an incremental distance traveled by the camera of {fraction (5/30)}ths or ⅙^(th) meter. If the camera mount speed for a subsequent segment increases to 6 meters per second at the same 30 frames per second video image capture rate, then the incremental distance between frames for this segment would be {fraction (6/30)}ths, or ⅕^(th) meter. Thus, the information required to locate a particular exerciser in a given course is relatively minimal. Calculation of the relative distance between users and the user 12 may be computed based on their locations along the course. For purposes of picture-in-picture display, the size of the other users or of a pacer may be altered based on the relative distance between such user or pacer and the user 12.

A virtual group may be created by a user 12 by using a virtual pacer. This pacer's speed may be a constant that may be selected by the user at the start of exercise, and that may be changed during exercise if desired. The user 12 may record a previous exercise session and use himself or herself as the pacer in a subsequent exercise session.

A model may be used as the pacer, and the video stream of the model traversing the course may be displayed to the user, for example, in a picture-in-picture inset.

Size may be determined using a formula or a look-up table, for example. Table 4 provides an example of a lookup table that might be used. TABLE 4 Height of enclosing Length of Pacer Separation Rectangle (feet) (percentage) <= 10 100 > 10 <= 20 90 > 20 <= 30 80 > 30 <= 40 70 > 40 <= 50 60 > 50 <= 60 50 > 60 <= 70 40 > 70 <= 80 30 > 80 <= 90 20 > 90 <= 100 10

The dimension of the rectangle displaying the pacer or another user may be determined from the resolution of the user display. The width may be a function of the height of the rectangle. The example set forth in Table 4 above assumes a full-size height determined by the resolution of the display device.

The user/pacer display may disappear at distances greater than 30.5 meters (100 feet). Cropping or other means may further enhance the pacer display. The relative size of the pacer and enclosing rectangle may remain constant. A display overlay may provide a numeric indication of distance between the user 12 and the user or pacer displayed in the rectangle.

Where a pacer is displayed rather than a user with whom real time data is being exchanged, the system 10 may allow for keyboard or other input to reset the pacer to a distance such as 5 meters. Other user inputs may start or terminate the pacer display before or during exercise. The user 12 may choose between constant-size display of a pacer or other user with digital or analog distance display, or may choose variable pacer/user rectangle size based on distance, or other combinations of displays. The user 12 or group of users that are exchanging data may also choose a group member to act as pacer.

Identifying the position of other users to the user 12 of the system 10 may be accomplished in a variety of ways. For example, a horizontal bar could be overlaid onto the video image stream being displayed on the display 18. Locations of other users in their respective systems could be indicated by symbols positioned along the horizontal bar. Other users, or a computing device-provided pacer could also be displayed, as by picture-in-picture, showing the user/pacer in a virtual rear view mirror if behind the user 12 or by a rear view of the user/pacer if ahead. The user/pacer could also be displayed by overlaying an image on the video-image stream display.

Referring to FIG. 6, in one embodiment, when a group session is opened by the user, two ports may be opened. For example, Port 1 may be opened to receive data and Port 2 to send data. A central computing device or web site may contain system identification information such as the identities and system addresses of group members, and, possibly, may also contain pre-recorded pacer or even user data from previous exercise sessions. Each group member may receive the system identification information of others selected to participate in group exercise.

A trainer or medical person may also receive system identification information for one or more of the group members.

Port 1 receives and buffers incoming member data. Data is cleared from the port as it is read. Port 2 is used for sending data from the system 10 and is likewise buffered for sending and cleared after sending. In one embodiment, the system of each group member periodically (e.g., every second) sends via its Port 2 a packet of information to Port 1 of the systems of the other group members. This data transmission may be direct from the users' systems or may be mediated by a server. The data may include member ID of the group member, course ID and current frame count. A trainer or medical person may also receive, for example, cadence, heart rate, device resistance, and so forth.

In one embodiment, when a group session is opened by the user, or when an external pacer is selected, in the step 200 Ports 1 and 2 are opened. Port 1 receives data from the external system and Port two transmits data from the system 10 to an external system. The transmission and receiving of data may be via wired or wireless connection, via a computer network, via modem over telephone lines, via the Internet or the like. A central computing device or web site may contain the identities and system addresses of all group members, or the system 10 may be configured to operate in a peer-to-peer relationship with other systems.

In the next step 201, the system or systems in the group send identifying information to each other and receive identifying information from other members of the group. The data is buffered and transmitted via Port 2, and, once sent by the system 10, the buffered data is deleted. Similarly, the data received through Port 1 by the system is buffered and is deleted once it is read by the system 10. During group sessions, Ports 1 and 2 are periodically polled, for example, once a second, to send and receive data.

The systems send and receive a predetermined data set that may include system identification information, course identification information, frame index number and the like.

Other data may also be sent, such as heart rate, breathing rate, cadence, device resistance level, ramp setting, and the like. Information may also be exchanged with a monitor system that receives data for display to medical personnel, a trainer or coach, or the like.

If the user 12 elects to designate a group member as a pacer, or if an external pacer is selected, in the step 203 a separate process is started. In this step 203, the data on the pacer, such as the pacer's frame index number, is received by this process, and a separation distance is calculated. In the next step 204, pacer information is provided to the user. This may be by providing a screen inset simulating a rear view or forward view, with an image of the pacer or of a simulated exerciser being presented in greater or lesser size, may include a display of the distance between the user 12 and pacer in digital or analog form, or, taken together with prior pacer data, a display indicative of whether the distance between the user 12 and pacer is increasing or decreasing.

The calculation of separation distance may be accomplished based on the location along the course. The frame index of the user 12 and pacer may be compared and the difference between them provides information for the calculation. For example, if the camera mount speed is 10 mph (16 kph), and the native frame rate of the video image stream is 30 frames per second, the distance per frame would be 10 mph*5280 ft/ml divided by 3600 seconds per hour and divided by 30 frames per second, or about 0.5 ft (0.15 m) per frame. Accordingly, if the user frame index is greater than the pacer frame index by 100 frames, the user would be approximately 50 feet (15 m) ahead of the pacer. The time difference between the pacer and user can be calculated from the speed corresponding to the user exercise level, the distance per frame and the number of frames separating the user and the pacer. For example, a separation distance of fifty feet (100 frames/0.5 ft/frame) would correspond to a “lead” of 2.5 seconds at a speed of 20 ft/sec. A negative number, of course, would represent a distance or time by which the user 12 lags the pacer.

Regardless of the choice made in step 202, a process is started in the step 210. In this step 210, the progress of each member of the group is calculated from data such as the frame index. For a course the video stream for which was calculated at a single camera mount speed and frame rate, the completion ratio may be the frame index divided by the total number of frames in the video image stream. For example, if the native display time for the video image stream is 30 minutes (1800 seconds), at a native frame rate of 30 frames per second, the video image stream would be comprised of 54000 frames. If the frame index for the first frame is 1 and the frame index for the frame corresponding to a user location is 13500 then the completion ratio is 13,500/54000, or 1/4, indicating that the user has traversed 25% of the course.

In the next step 211, the completion ratios of the members of the group, including the user 12 are displayed. One form of display might be a horizontal line representing the full extent of the course. The location of various group members along the course could be indicated by symbols placed along the line at locations indicative of the completion ratio. In the foregoing example, the group member that had reached frame 13500 might be indicated by a marker displayed ¼ of the way along the line. Different symbols, symbols of different colors and the like may be used to differentiate the group members on the display.

In local group sessions comprised of more than one system 10, a system 10 that transmits wirelessly or by wire among the sensors, collectors and computing devices must identify and operate on the appropriate user sensor data.

In one embodiment, a system 10 may collect data from sensors from multiple users who form a group. In such case, a single user who is a member of the group may be designated as the leader, and all members of the group would view the same scene driven by the leader. That is, the leader's position on the course would be displayed to all users irrespective of where in the course these other group members actually are. Position information for each of the connected users 12 in the group may be displayed. For example, a position bar may be marked with distinct symbols along its length indicating the location of each of the users 12 of the group. Different colors and/or shapes may be used to distinguish among the users 12. A user 12 who has completed 75% of the course may be represented by a symbol at the 75% position along the length of the bar. As such, the users 12 in the group would be able to know where they are along the course relative to the leader and other members of the group. The determination of user 12 location along the course may be made by keeping track of the frame count for each user 12, even though it is the leader's view and not the frame corresponding to this frame count that is displayed to the user 12.

Data from all connected users may be logged or transmitted to remote systems as previously described. If a single computing device receives data from multiple users and displays different and appropriate frames to each user 12, each instance would function as, and may be considered, a separate system 10.

In light of this disclosure, it will be recognized by one skilled in the art that the functions and operation of the various embodiments disclosed may be implemented in software, in firmware, in special purpose digital logic, or any combination thereof.

Although the present invention has been described in considerable detail with reference to certain preferred embodiments, other embodiments are possible. Therefore, the spirit or scope of the appended claims should not be limited to the description of the embodiments contained herein. 

1. A method of displaying a pre-recorded visual-image stream having a plurality of sequential visual images, comprising: sensing a repetitive user physical function and generating a user-exercise signal in response thereto; determining a user-exercise level in response to the user-exercise signal; providing a series of visual images having at least one presentation rate value associated therewith, the series of visual images being viewable as a visual-image stream; and dynamically adjusting a frame-display time for a series of visual images as a function of the determined user-exercise level and the at least one presentation rate value.
 2. The method of claim 1, wherein the step of dynamically adjusting a frame-display time further comprises: receiving native frame-display times for the visual-image stream comprising a series of visual images; correlating the presentation rate value and the user-exercise level; and modifying the native frame-display time in response to the correlation to produce the modified frame-display time.
 3. The method of claim 2 wherein the step of sensing a repetitive user physical action includes mounting a sensor on the user and sensing user-exercise signals produced by the sensor.
 4. The method of claim 2 wherein the step of sensing a repetitive user physical action includes providing a non-contact sensor for monitoring repetitive user physical function and sensing user-exercise signals produced by the sensor.
 5. The method of claim 2 wherein display of at least one of the visual images is omitted to simulate a speed higher than the presentation rate value.
 6. The method of claim 2 wherein the user-exercise level is determined by reference to a look-up table.
 7. The method of claim 2 wherein the user-exercise level is determined using an algorithm.
 8. The method of claim 2 wherein the step of correlating the presentation rate value and the user-exercise level comprises calculating a ratio of values representative of the presentation rate value and the user-exercise level.
 9. The method of claim 8 wherein the presentation rate value is embedded in the visual-image stream data.
 10. The method of claim 8 wherein the presentation rate value is provided by the user.
 11. The method of claim 8 wherein the video-image stream is retrieved from a computer-readable medium and wherein the presentation rate value is retrieved from the medium.
 12. The method of claim 8 wherein the visual-image stream is stored on a computing device-readable medium and the presentation rate value is stored in association with the visual-image stream on the medium.
 13. The method of claim 8 wherein the visual-image stream includes visual-image stream portions representing alternative paths and wherein the alternative paths are chosen in response to a user input.
 14. The method of claim 8 wherein the visual-image stream includes visual-image stream portions representing alternative paths and wherein the alternative paths are chosen in response to program context.
 15. The method of claim 2 wherein supplemental data is output to the user in response to the occurrence of a predetermined condition.
 16. The method of claim 15 wherein the supplemental data is selected from the group consisting of still images, text information and audio information.
 17. The method of claim 8 further comprising the steps of: sending system information for the system to a second system being used by a second user indicative of the location of the user of the system in the video image stream; receiving system information from the second system being used by the second user indicative of the location of the second user in the video image stream of the second system; displaying course completion information for the second user to the user of the system.
 18. A computing device-readable medium containing computing device-executable instructions which, when run on a computing device, cause the computing device to: input a user-exercise signal; determine a user-exercise level in response to the user-exercise signal; display a series of visual images having at least one presentation rate value associated therewith, the series of visual images being viewable as a visual-image stream; and dynamically adjusting a frame-display time for a series of visual images as a function of the user-exercise level and the at least one presentation rate value.
 19. The system of claim 18, wherein the step of dynamically adjusting a frame-display time further comprises: receiving native frame-display times for the visual-image stream comprising a series of visual images; correlating the presentation rate value and the user-exercise level; and modifying the native frame-display time in response to the correlation to produce the modified frame-display time.
 20. The system of claim 18 further comprising a sensor mountable on a user for producing a user-exercise signal.
 21. A system for use by exercisers comprising: a sensor for sensing a repetitive physical function of a user and outputting a user-exercise signal in response thereto; a visual-image stream player for outputting a visual-image stream displayable on a video output device, the visual-image stream being created from data stored on a medium readable by the visual-image stream player; a computing device; a set of instructions executable by the computing device for determining a user-exercise level in response to user-exercise signals output by the sensor and dynamically adjusting a frame-display time of frames of the visual-image stream in response to the user-exercise level. 